﻿<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CodeGeneration.aspx.cs" Inherits="TypeManagement.CodeGeneration" MasterPageFile="../MasterPages/MedianamikModule.Master" Title="<%$ Resources:Medianamik_TypeManagement, CodeGeneration %>" %>
<%@ Register Src="Controls/MultipleTemplatePicker.ascx" TagPrefix="ctrl" TagName="MultipleTemplatePicker" %>

<asp:Content ID="HeaderContent" ContentPlaceHolderID="HeaderContentHolder" runat="server"></asp:Content>

<asp:Content ID="ContextMenuContent" ContentPlaceHolderID="ContextMenu" runat="server">
         <asp:LinkButton ID="btnGenerateFiles" runat="server" class="Action BtRoulerScript" Text="Générer des fichiers.cs" OnClick="btnGenerateFiles_Click" ></asp:LinkButton>
</asp:Content>

<asp:Content ID="MainTreeView" ContentPlaceHolderID="VariableRightPanel" runat="server"></asp:Content>

<asp:Content ID="CenterContent" ContentPlaceHolderID="CenterContent" runat="server">

    <div class="ZoneTexte">
    <asp:MultiView runat="server" ID="Views" ActiveViewIndex="0">
    
        <asp:View runat="server" ID="vwDoc">
			<h2>Les types suivants vont être générés :</h2>
        
			<asp:Repeater runat="server" ID="rptTypes">
				<HeaderTemplate><ul></HeaderTemplate>
				<ItemTemplate >
					<li><%# Eval("Name") %> <%# (bool)Eval("IsManyToMany") ? "(ManyToMany)" : string.Empty  %></li>
				</ItemTemplate>
				<FooterTemplate></ul></FooterTemplate>
			</asp:Repeater>
			
			<h2>Les interfaces suivantes vont être générées :</h2>
        
			<asp:Repeater runat="server" ID="rptInterfaces">
				<HeaderTemplate><ul></HeaderTemplate>
				<ItemTemplate >
					<li><%# Eval("Name") %></li>
				</ItemTemplate>
				<FooterTemplate></ul></FooterTemplate>
			</asp:Repeater>
			
			<h2>Génération du code</h2>
			<p>Un template de génération Subsonic est utilisé pour générer les classes.	Différentes options sont disponibles pour la génération :</p>
			<ul>
				<li><b>ProviderName</b> : Nom du Provider SubSonic utilisé pour la génération</li>
				<li><b>Namespace</b> : Namespace dans lequel seront générés les classes</li>
				<li><b>BasePage</b> : Pour les Types contenant une Propriété URL, une classe de type Page sera générée.
					Il est possible de spécifier un BasePage spécifique pour cette classe.</li>
				<li><b>ReferenceAssemblies</b> : Une référence vers <b>Medianamik.Core.dll</b> et <b>System.Core.dll</b> sont nécéssaires. </li>
			</ul>
			<h2>Configuration</h2>
			<p>Voici la configuration par défaut utilisée pour la génération :</p>
			<pre>
    &lt;Medianamik&gt;
        &lt;CodeGeneration ProviderName=&quot;CodeGenerationProvider&quot;
                        Namespace=&quot;Medianamik.Client.DAL&quot;
                        BasePage=&quot;System.Web.UI.Page&quot; &gt;
            &lt;ReferenceAssemblies&gt;
                &lt;add path=&quot;C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Core.dll&quot; /&gt;
                &lt;add path=&quot;CheminVers\Medianamik.Core.Dll&quot; /&gt;
            &lt;/ReferenceAssemblies&gt;
        &lt;/CodeGeneration&gt;
    &lt;/Medianamik &gt;
			</pre>
        </asp:View>
        
        <asp:View runat="server" ID="vwSuccess">
           <h3>SUCCESS !</h3>
           <p>Durée : <asp:Label runat="server" ID="lblDuration" Text="&lt;(^.^&lt;)"></asp:Label> secondes.</p>
        </asp:View>
        
        <asp:View runat="server" ID="vwFailure">
            <asp:Panel runat="server" ID="pnlCompilerOutput" CssClass="TxtErreur" >
               <h3>Compilateur</h3>
            </asp:Panel>
            <br /><br />
            <asp:PlaceHolder runat="server" ID="phErrors" >
               <h3>Erreurs</h3>
            </asp:PlaceHolder>
            <asp:Panel runat="server" ID="pnlFinalCode" >
               <h3>Code généré</h3>
            </asp:Panel>
        </asp:View>
        
    </asp:MultiView>
    </div>

</asp:Content>

<asp:Content ID="ExternalContent" ContentPlaceHolderID="ExternalContentHolder" runat="server"></asp:Content>
